<?php
/*
 * @Date: 2024-12-29 22:05:56
 */

namespace Tools;

class UEnv
{
    public static $filename = __DIR__ . "/env.json";
    public static $data;
    public static function getAll()
    {
        static::exists();
        // 使用file_get_contents获取文件内容
        $content = file_get_contents(static::$filename);
        if (empty($content)) {
            // 文件内容为空，使用file_put_contents添加{}
            static::setAll([]);
        } else {
            return json_decode($content, true);
        }
    }

    public static function setAll($data = [])
    {
        static::exists();
        $data = json_encode($data);
        if (file_put_contents(static::$filename, $data) !== false) {
            static::$data = $data;
            return null;
        } else {
            die("向空文件添加内容失败");
        }
    }
    public static function get($key, $default = null)
    {
        if(isset(static::$data)){
            $data = static::$data;
        }else{
            static::$data = static::getAll();
        }
        $data = static::$data;
        return isset($data[$key]) ? $data[$key] : $default;
    }

    public static function set($key, $value)
    {
        $data = static::getAll();
        $data[$key] = $value;
        static::setAll($data);
    }

    public static function exists()
    {
        if (!file_exists(static::$filename)) {
            // 文件不存在，使用fopen以w模式打开（若不存在则创建新文件）
            $file = fopen(static::$filename, 'w');
            if ($file) {
                fclose($file);
            } else {
                die("文件创建失败,请检查php权限或关闭禁用文件函数");
            }
        }
    }
}
